package com.fileupload.process;

import java.io.File;

/**
 * 文件处理服务接口
 * @author 小乙
 */
public interface FileProcessService {

    /**
     * 处理文件 - 使用策略模式实现
     * 
     * @param file 待处理的文件
     * @param action 处理动作，支持的操作类型：delete/keep/same-move/time-based/relative-path/diff-move/diff-move-time/diff-move-path
     * @param moveToPath 移动目标路径（如果操作需要）
     * @param monitorDir 监控目录路径
     * @return 处理结果
     */
    boolean processFile(File file, String action, String moveToPath, String monitorDir);
    
    /**
     * 处理多个文件操作
     * 
     * @param file 待处理的文件
     * @param actions 多个处理动作，使用/分隔
     * @param moveToPath 移动目标路径（如果操作需要）
     * @param monitorDir 监控目录路径
     * @return 所有操作是否都成功
     */
    boolean processFileWithMultipleActions(File file, String actions, String moveToPath, String monitorDir);
    
    /**
     * 移动文件到指定路径
     * 
     * @param file 待移动的文件
     * @param targetPath 目标路径
     * @return 移动是否成功
     */
    boolean moveFile(File file, String targetPath);
    
    /**
     * 删除文件
     * 
     * @param file 待删除的文件
     * @return 删除是否成功
     */
    boolean deleteFile(File file);
}